<?php

namespace coreapi\extensions\utils;

class Utils {
	/**
	 * 获取数据后两位，不足两位的前补0
	 * @param $number
	 * @return int|string
	 */
	public static function getLastTwoNum($number) {
		$number = intval($number);
		if ($number < 0) {
			$number = abs($number);
		}
		$result = $number % 100;
		if ($result < 10) {
			$result = '0' . $result;
		}
		return $result;
	}

	/**
	 * 获取订单编号[业务前缀+日期+订单号后两位]
	 * @param $id
	 * @param $timestamp
	 * @param string $prefix
	 * @return string
	 */
	public static function getOrderNo($id, $timestamp, $prefix = '') {
		$formatDate = date('YmdHis', $timestamp);
		$number = self::getLastTwoNum($id);
		return $prefix . $formatDate . $number;
	}

	/**
	 * 判断是否为有效的日期格式
	 * @var array
	 */
	public static function checkDateIsValid($date, $formats = ["Y-m-d", "Y/m/d"]) {
		$unixTime = strtotime($date);
		if (!$unixTime) {
			//strtotime转换不对，日期格式显然不对。
			return false;
		}
		//校验日期的有效性，只要满足其中一个格式就OK
		foreach ($formats as $format) {
			if (date($format, $unixTime) == $date) {
				return true;
			}
		}
		return false;
	}

}